package example.day07.demo03;

/*
    成员变量和局部变量的区别

     1.定义的位置的不同
             成员变量定义在类中 方法外
             局部变量定义在方法内
     2.作用域范围不同
             成员变量在整个类中都生效
             局部变量只在对应的方法内生效
     3.默认值不同
             成员变量有默认值
             局部变量没有默认值 必须赋值 不赋值不能使用
     4.内存中位置不同
             成员变量在堆内存中
             局部变量在栈内存中
     5.生命周期不同
             成员变量随着对象的创建而产生 随着对象被回收而销毁
             局部变量随着方法的压栈而产生 随着方法的弹栈而销毁



      成员变量和成员变量不能同名
      局部变量和局部变量不能同名
      成员变量和局部变量可以同名

      变量的就近访问原则

      局部>成员


      this可以区分成员变量和局部变量

 */
public class Person {

    String name= "成员name";





    public void eat(){
        int a = 10;
       String name = "局部name";

        System.out.println(name);
        System.out.println(this.name);
    }


}
